In a computing system, multiple requesters (e.g., software threads, processors, or other hardware) may contend for access to a shared object or resource such as, for example, a critical section in a memory, a shared data structure, a semaphore, or other suitable shared resources. An arbitration scheme is typically used so that only one requester can access the shared resource at a time. The arbitration scheme uses a lock that is associated with the shared resource so that the other requesters will be blocked from accessing the shared resource until the current requester has completed its operation in the shared resource and has released the lock.